package com.test.mybatis.plus.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.test.mybatis.plus.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserInfoMapper extends BaseMapper<UserInfo> {

    @Select("select * from user_info")
    List<UserInfo> selectAll();

//      参数命名：在⾃定义 SQL 时, 传递 Wrapper 对象作为参数时, 参数名必须为 ew ，或者使⽤注解
//    @Param(Constants.WRAPPER) 明确指定参数为 Wrapper 对象.
//•     使⽤ ${ew.customSqlSegment} ：在 SQL 语句中，使⽤ ${ew.customSqlSegment} 来
//    引⽤ Wrapper 对象⽣成的 SQL ⽚段.
//•     不⽀持基于 entity 的 where 语句：⾃定义 SQL 时，Wrapper 对象不会基于实体类⾃动⽣成
//    where ⼦句，你需要⼿动编写完整的 SQL 语句.
    @Select("select id,username,password,age FROM user_info \n" +
            "${ew.customSqlSegment}")
    List<UserInfo> queryByCondition(@Param(Constants.WRAPPER) Wrapper<UserInfo> wrapper);
}
